Computing and communication networks typically include nodes, such as routers, firewalls, switches or gateways, which transfer or switch data, such as packets, from one or more sources to one or more destinations. The nodes may operate on the packets as the packets traverse the network, such as by forwarding or filtering the packet-based network traffic.
A master node may provide timing and control services to other nodes (referred to as slave nodes) by transmitting and/or receiving timing packets that permit the slave nodes to synchronize clocks, hosted by the slave nodes, to a master clock that is hosted by the master node. The slave nodes may use the timing packets to identify a period of delay and/or error associated with the clocks relative to the master clock. The slave nodes may use the period of delay and/or error to calibrate the clocks to the master clock.
A master node may transmit a particular timing packet, such as a synchronization packet, to a slave node that includes a particular time, calibrated to the master clock, at which the synchronization packet was transmitted. The slave node may receive the synchronization packet and may use the particular time to synchronize with the master clock. The master node may be a one-step master when the particular time is stored in the synchronization packet. The master node may be a two-step master when the particular time is transmitted, to the slave node via a follow-up packet, after the synchronization packet is sent.